#include<iostream>
#include<cstdio>
#define rep(i,a,b) for(register int i = (a);i <= (b);++i)
#define per(i,a,b) for(register int i = (a);i >= (b);--i)
using std::cin;using std::cout;

int n,m,k,a[111],u,v,w,map[111][111],ans,dp[(1<<14)][110];
const int inf = 2147483647;

inline void dfs(int now,int p,int sum){
    if(dp[now][p] <= sum || now & (1<<a[p]) || ans <= sum) return;
    if((now | (1<<a[p])) == (1<<k)-1){
        ans = std::min(sum,ans);
        return;
    }
    dp[now][p] = sum;
    rep(i,1,n) if(map[p][i] < inf) dfs(now | (1<<a[p]),i,sum + map[p][i]);
    return;
}

int main(){
    std::ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    //freopen("in.in", "r", stdin);
    cin >> n >> m >> k;
    rep(i,1,n) cin >> a[i];
    rep(i,0,(1<<k)-1) rep(j,0,n) dp[i][j] = inf;
    rep(i,0,n) rep(j,0,n) map[i][j] = inf; 
    rep(i,1,m){
        cin >> u >> v >> w;
        map[u][v] = w;//有向边
    }
    rep(i,1,n) dp[ 1<<a[i] ][i] = 0;//选起点
    ans = inf;
    rep(i,1,n) dfs(0,i,0);
    if(ans == inf) cout << "Ushio!\n";
    else cout << ans << "\n";
    return 0;
}
